iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
AI & Data

氣象食材系列 第 28

[Day28] 數值模式資料應用-分群

  • 分享至 

  • xImage
  •  

解了這麼多天的資料,總該來應用一下。
近幾年人工智慧應搭配巨量資料的應用蓬勃發展,其中透過人工智慧領域之機器學習技術結合巨量資料更是首選。
而氣象的資料眾多,從第1天到27天應該可以體會到(可能啦),當資料累積起來,可視為巨量資料(當然也符合4V)。
大家可以參考人工智慧/機器學習應用於大氣科學,提到了一些人工智慧/機器學習應用於大氣科學領域的方向及議題。

這邊利用分群演算法kmeans++針對數值模式初始場(分析場)進行分群。
使用資料時間為2017年至2019年的7至9月份每天早上8點的初始場。
說明一下初始場,初始場為大氣數值模式進行預報時的初始狀態,而此初始狀態如果有將觀測資訊結合(同化),這一個初始場是經過分析的,故也會說這個初始場是分析場。

kmeans系列演算法最會被提問的就是「為什麼要分n群?」,這邊針對7至9月進行分群,在夏季主要的天氣型態為颱風、午後雷陣雨、高壓壟罩及9月底的季節交替,故分成4群。

數值模式的變數很多,這邊取500百帕高度、850百帕高度u風、850百帕高度v風、10米u風及10米v風共5個變數同時進行分群。

from sklearn.cluster import KMeans
import numpy as np

datas = np.load("500_850_10.npy") #讀取已經整理好的資料
datas[:,:,:,0] = datas[:,:,:,0]/5880. #類似標準化,標準化500百帕高度
print(datas.shape)
"""
print(datas.shape)
會得到(101,576,1160,5)
代表有5個變數,每一個變數有101個576*1160大小的範圍
"""

#這邊可能會有點難想像,我將事件數與維度變數成積
dataflat = datas.reshape(101,576*1160*5)
kmeans = KMeans(n_clusters=4)
kmeans.fit(dataflat)
lab = kmeans.labels_

#每個分組有多少點
c1 = len(np.where(lab==0)[0])
c2 = len(np.where(lab==1)[0])
c3 = len(np.where(lab==2)[0])
c4 = len(np.where(lab==3)[0])

#取各群組所在位置
c1idx = np.where(lab==0)[0].tolist()
c2idx = np.where(lab==1)[0].tolist()
c3idx = np.where(lab==2)[0].tolist()
c4idx = np.where(lab==3)[0].tolist()

#取各個群組的數值
datas1 = datas[c1idx]
datas2 = datas[c2idx]
datas3 = datas[c3idx]
datas4 = datas[c4idx]

#取各個群組的數值平均
datas1_avg = datas1.mean(axis=0) #輸出shape為(576,1160,5)
datas2_avg = datas2.mean(axis=0) #輸出shape為(576,1160,5)
datas3_avg = datas3.mean(axis=0) #輸出shape為(576,1160,5)
datas4_avg = datas4.mean(axis=0) #輸出shape為(576,1160,5)

跟據最後的各個群組的數值平均,可以視覺化4張圖如下
https://ithelp.ithome.com.tw/upload/images/20221012/20150923pQs7m8vndB.png
圖形上的黑色風標為850百帕高度的風場,綠色風標為10米風風場。填色的為500百帕高度場分布。
從分完的結果簡單說明一下
左上圖:
典型的夏季型態大氣分布,台灣附近的地層風場都是西南風,但高壓的分佈有點怪怪的啦。
左下圖:
有熱帶低壓的大氣環境,可以看到圖形的右側為逆時針旋轉的系統。
右上圖:
台灣東方有逆時針選轉的系統,然後高壓正在斷裂
右下圖:
高壓壟罩台灣

是蠻符合夏季該有的大氣環境配置,但還可以探討更多議題,有興趣的可以找相關文獻繼續研讀囉。


上一篇
[Day 27] 天氣特報-豪大雨特報(CAP)
下一篇
[Day 29] 卷積神經網路注意力機制-雲分辨率之估計
系列文
氣象食材30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言